/*
 * Copyright (c) 2008, 2012, Oracle and/or its affiliates. All rights reserved.
 * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 */

package java.lang.invoke;

/**
 * 抛出以指示代码试图通过错误的方法类型调用方法句柄。
 * 与普通Java方法调用的字节码表示一样，方法句柄调用
 * 强类型化为与调用站点关联的特定类型描述符。
 * <p>
 * 当两个方法句柄被组合时，如果系统检测到它们的类型
 * 无法正确匹配，也可能抛出此异常。这相当于在方法句柄
 * 构造时进行类型不匹配的早期评估，而不是在调用
 * 不匹配的方法句柄时。
 *
 * @author John Rose, JSR 292 EG
 * @since 1.7
 */
public class WrongMethodTypeException extends RuntimeException {
    private static final long serialVersionUID = 292L;

    /**
     * 构造一个没有详细消息的{@code WrongMethodTypeException}。
     */
    public WrongMethodTypeException() {
        super();
    }

    /**
     * 构造一个具有指定详细消息的{@code WrongMethodTypeException}。
     *
     * @param s 详细消息。
     */
    public WrongMethodTypeException(String s) {
        super(s);
    }

    /**
     * 构造一个具有指定详细消息和原因的{@code WrongMethodTypeException}。
     *
     * @param s 详细消息。
     * @param cause 异常的原因，或null。
     */
    //FIXME: make this public in MR1
    /*non-public*/ WrongMethodTypeException(String s, Throwable cause) {
        super(s, cause);
    }

    /**
     * 构造一个具有指定原因的{@code WrongMethodTypeException}。
     *
     * @param cause 异常的原因，或null。
     */
    //FIXME: make this public in MR1
    /*non-public*/ WrongMethodTypeException(Throwable cause) {
        super(cause);
    }
}
